package com.gengzp.mq.server.model.message.entity;


import com.gengzp.mq.server.enums.MqMessageStatusEnums;

import java.io.Serial;
import java.io.Serializable;

/**
 * @ClassName MqMessage
 * @Description 消息实体类
 * @Author gengzp
 * @Date 2025/8/27 16:17
 */
public class MqMessage implements Serializable {

    @Serial
    private static final long serialVersionUID = 9129736653188052654L;

    /**
     * 主键id
     */
    private String messageId;

    /**
     * 主题
     */
    private String topic;

    /**
     * 标签
     */
    private String tag;

    /**
     * 消息内容
     */
    private String content;

    /**
     * 消息状态
     * {@link MqMessageStatusEnums}
     */
    private Integer status;

    /**
     * 消息发送时间戳
     */
    private Long sendTimeStamp;

    /**
     * 消息重试次数
     */
    private Integer retryCount;

    /**
     * 下次重发间隔时间
     */
    private Long nextResendIntervalTime;

    public String getMessageId() {
        return messageId;
    }

    public void setMessageId(String messageId) {
        this.messageId = messageId;
    }

    public String getTopic() {
        return topic;
    }

    public void setTopic(String topic) {
        this.topic = topic;
    }

    public String getTag() {
        return tag;
    }

    public void setTag(String tag) {
        this.tag = tag;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getSendTimeStamp() {
        return sendTimeStamp;
    }

    public void setSendTimeStamp(Long sendTimeStamp) {
        this.sendTimeStamp = sendTimeStamp;
    }

    public Integer getRetryCount() {
        return retryCount;
    }

    public void setRetryCount(Integer retryCount) {
        this.retryCount = retryCount;
    }

    public Long getNextResendIntervalTime() {
        return nextResendIntervalTime;
    }

    public void setNextResendIntervalTime(Long nextResendIntervalTime) {
        this.nextResendIntervalTime = nextResendIntervalTime;
    }

}
